/**

 \cond
 Copyright (C) 2021 Ivan Polyakov

 This file is part of the fltube manual.

 fltube is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.

 fltube is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program.  If not, see <https://www.gnu.org/licenses/>.
 \endcond

 \page styleguide Style Guide

 \tableofcontents

 ## Licensing
 All sources are licensed under the GPL version 3 or later.
 Please include a full license notice with your name (and email, if you want)
 instead of the SPDX identifier.

 Example:
 ~~~~~~~~~~~~~~~{.c}
 /*
   Copyright (C) 2021 John Doe <email address>

   This file is part of fltube.

   fltube is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   fltube is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 ~~~~~~~~~~~~~~~

 ## Character set
 Use only ASCII characters in all sources (except `po` files, of course).

 ## Line length
 The line length limit is **75 characters**. If your line is larger, move parts
 of it to a new line.

 ## Indentation
 Use the <a href="http://en.wikipedia.org/wiki/Indentation_style#K&R_style">
 K&R style</a>
 in the
 <a href="http://en.wikipedia.org/wiki/Indentation_style#Variant:_1TBS_(OTBS)">
 1TBS (OTBS)</a> variant.

 Example:
 ~~~~~~~~~~~~~~~{.c}
 int main(int argc, char **argv)
 {
    ...
    while (x == y) {
        something();
        somethingelse();

        if (some_error) {
            do_correct();
        } else {
            continue_as_usual();
        }
    }

    finalthing();
    ...
 }
 ~~~~~~~~~~~~~~~

 ## C and C++ specific rules
 ### Files
 Use `cxx` suffix for C++ implementation files
 and `hxx` for C++ headers (with classes).

 ### Comments
 For **C** sources, always use block comments.

 ### Naming
 <b>C</b>: Always use *snake_case*.

 <b>C++</b>: Use *PascalCase* in classes and `hxx` file names. Otherwise,
 use *snake_case* as in **C**.

 ### Include guard
 For include guard name use the following pattern:
 `<PROJECT_NAME>_<FILENAME>_<SUFFIX>_ENTRY`. And please comment `#endif` with
 the same name.

 Example:
 ~~~~~~~~~~~~~~~{.c}
 /* example_header.h */
 #ifndef FLTUBE_EXAMPLE_HEADER_H_ENTRY
 #define FLTUBE_EXAMPLE_HEADER_H_ENTRY

 ...

 #endif /* FLTUBE_EXAMPLE_HEADER_H_ENTRY */
 ~~~~~~~~~~~~~~~

 <b>Don't use `#pragma once`!</b>

 ## Examples
 ### C++ source
 ~~~~~~~~~~~~~~~{.cpp}
 #include "ExampleClass.hxx";


 using namespace Fltube;

 // For functions (not methods) use the C naming style.
 static void some_function()
 {
     ...
 }

 ExampleClass::ExampleClass()
 {
     ...
 }
 ~~~~~~~~~~~~~~~
 */
